package com.ys.nms.module.business.controller.admin.processors.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 处理器 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ProcessorsRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12608")
    @ExcelProperty("ID")
    private Integer processorId;

    @Schema(description = "关联设备物理实体的 SNMP 索引（来自 ENTITY-MIB），用于定位具体硬件组件（如 CPU 插槽）。", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("关联设备物理实体的 SNMP 索引（来自 ENTITY-MIB），用于定位具体硬件组件（如 CPU 插槽）。")
    private Integer entPhysicalIndex;

    @Schema(description = "关联到主机资源管理 MIB（HOST-RESOURCES-MIB）的设备索引，用于标识设备的硬件资源。")
    @ExcelProperty("关联到主机资源管理 MIB（HOST-RESOURCES-MIB）的设备索引，用于标识设备的硬件资源。")
    private Integer hrDeviceIndex;

    @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7899")
    @ExcelProperty("设备ID")
    private Integer deviceId;

    @Schema(description = "获取处理器信息的 SNMP OID（对象标识符），用于动态采集数据。", requiredMode = Schema.RequiredMode.REQUIRED, example = "15468")
    @ExcelProperty("获取处理器信息的 SNMP OID（对象标识符），用于动态采集数据。")
    private String processorOid;

    @Schema(description = "处理器在设备中的索引标识（如 SNMP 索引），用于区分同一设备的不同处理器或核心。", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("处理器在设备中的索引标识（如 SNMP 索引），用于区分同一设备的不同处理器或核心。")
    private String processorIndex;

    @Schema(description = "处理器的类型（如 cpu", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("处理器的类型（如 cpu")
    private String processorType;

    @Schema(description = "当前处理器的使用率（百分比，整数形式，如 75	 表示 75%）。", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("当前处理器的使用率（百分比，整数形式，如 75	 表示 75%）。")
    private Integer processorUsage;

    @Schema(description = "处理器的描述信息（如 Intel(R) Xeon(R) CPU 或 Hyper-V Virtual Processor），便于识别具体硬件。", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("处理器的描述信息（如 Intel(R) Xeon(R) CPU 或 Hyper-V Virtual Processor），便于识别具体硬件。")
    private String processorDescr;

    @Schema(description = "数据精度或单位倍数（例如：1	 表示直接使用原始值，100	 表示将值除以 100），用于数值换算。", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("数据精度或单位倍数（例如：1	 表示直接使用原始值，100	 表示将值除以 100），用于数值换算。")
    private Integer processorPrecision;

    @Schema(description = "处理器使用率的告警阈值（默认 75%	），超过此值时触发告警（如邮件或短信通知）。")
    @ExcelProperty("处理器使用率的告警阈值（默认 75%	），超过此值时触发告警（如邮件或短信通知）。")
    private Integer processorPercWarn;

}
